﻿// Decompiled with JetBrains decompiler
// Type: System.Web.Razor.Generator.BlockCodeGenerator
// Assembly: System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// MVID: 682513D6-F37E-48AC-9909-F3EE103CFF14
// Assembly location: D:\Project\Idea\无人机外网\uav\客户端工程\排查工具\bin\Release\System.Web.Razor.dll

using System.Web.Razor.Parser.SyntaxTree;

namespace System.Web.Razor.Generator
{
  /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Represent the block code generator for this razor syntax.</summary>
  public abstract class BlockCodeGenerator : IBlockCodeGenerator
  {
    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Represents a null value for the block code generator.</summary>
    public static readonly IBlockCodeGenerator Null = (IBlockCodeGenerator) new BlockCodeGenerator.NullBlockCodeGenerator();

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Generates the start of the block code generator for this razor syntax.</summary>
    /// <param name="target">The target block.</param>
    /// <param name="context">The code generator context.</param>
    public virtual void GenerateStartBlockCode(Block target, CodeGeneratorContext context)
    {
    }

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Generates the end of the block code generator for this razor syntax.</summary>
    /// <param name="target">The target block.</param>
    /// <param name="context">The code generator context.</param>
    public virtual void GenerateEndBlockCode(Block target, CodeGeneratorContext context)
    {
    }

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Determines whether the specified object is equal to the current object.</summary>
    /// <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
    /// <param name="obj">The object to compare with the current object.</param>
    public override bool Equals(object obj) => obj is IBlockCodeGenerator;

    /// <summary>This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Returns a hash code for the block code generator.</summary>
    /// <returns>A hash code for the block code generator.</returns>
    public override int GetHashCode() => base.GetHashCode();

    private class NullBlockCodeGenerator : IBlockCodeGenerator
    {
      public void GenerateStartBlockCode(Block target, CodeGeneratorContext context)
      {
      }

      public void GenerateEndBlockCode(Block target, CodeGeneratorContext context)
      {
      }

      public override string ToString() => "None";
    }
  }
}
